﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MJM.RPP.EntidadesNegocio;
using MJM.SPP.EntidadesNegocio;
using MJM.Principal;

namespace wRegPadron
{
    public partial class RegistroPadron : System.Web.UI.Page
    {
        static Servicio.wsMail wsMail = new wRegPadron.Servicio.wsMail();
        protected void Page_Load(object sender, EventArgs e)        
        {
            if (!Page.IsPostBack)
            {
                int anioini = DateTime.Now.Year - 90;
                int aniofin = DateTime.Now.Year - 18;
                for (int i = anioini; i <= aniofin; i++)
                    ddlAnio.Items.Insert(0, i.ToString());
                ddlAnio.Items.Insert(0, "Año");
                for (int i = 1; i < 32; i++)
                    if (i.ToString().Length < 2)
                        ddlDia.Items.Add("0" + i.ToString());
                    else
                        ddlDia.Items.Add(i.ToString());
                ddlDia.DataBind();
                ddlAnio.DataBind();
                rbDNI.Checked = true;
                rbMasculino.Checked = true;
            }
        }

        protected void rbNatural_CheckedChanged(object sender, EventArgs e)
        {
            tbPerJuridica.Visible = false;
            tbPerNatural.Visible = true;
            rbDNI.Visible = true;
            rbCE.Visible = true;
            rbRUC.Visible = true;
            txtNumero.Text = "";
            txtNombres.Text = "";
            txtApePaterno.Text = "";
            txtApeMaterno.Text = "";
            txtNumero.MaxLength = 8;
            rbDNI.Checked = true;
        }

        protected void brJuridica_CheckedChanged(object sender, EventArgs e)
        {
            tbPerNatural.Visible = false;
            tbPerJuridica.Visible = true;
            rbDNI.Visible = false;
            rbCE.Visible = false;
            rbRUC.Visible = true;
            rbRUC.Checked = true;
            txtNumero.Text = "";
            txtRazonSocial.Text = "";
            txtNumero.MaxLength = 11;
        }

        protected void CambiarDia(object sender, EventArgs e)
        {
            int dia = ddlDia.SelectedIndex;
            int mes = ddlMes.SelectedIndex;
            ddlDia.Items.Clear();
            if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12)
            {
                for (int i = 1; i < 32; i++)
                    if (i.ToString().Length < 2)
                        ddlDia.Items.Add("0" + i.ToString());
                    else
                        ddlDia.Items.Add(i.ToString());
                ddlDia.DataBind();
                if (dia < 31)
                 ddlDia.SelectedIndex = dia;
            }
            else if (mes == 2)
            {
                for (int i = 1; i < 29; i++)
                    if (i.ToString().Length < 2)
                        ddlDia.Items.Add("0" + i.ToString());
                    else
                        ddlDia.Items.Add(i.ToString());
                    ddlDia.DataBind();
                if (dia < 28)
                    ddlDia.SelectedIndex = dia;
            }
            else if (mes == 4 || mes == 6 || mes == 9 || mes == 11)
            {
                for (int i = 1; i < 31; i++)
                    if (i.ToString().Length < 2)
                        ddlDia.Items.Add("0" + i.ToString());
                    else
                        ddlDia.Items.Add(i.ToString());
                ddlDia.DataBind();
                if (dia < 30)
                    ddlDia.SelectedIndex = dia;
            }
        }

        protected void btnRegistrar_Click(object sender, EventArgs e)
        {
            if (ddlAnio.SelectedItem.ToString() != "Año" || rbJuridica.Checked)
            {
                if (ddlMes.SelectedItem.ToString() != "Mes" || rbJuridica.Checked)
                {
                    UsuarioE objUsuarioE = new UsuarioE();
                    if (txtContrasenia.Text == txtConfirma.Text)
                    {
                        if (MediadorCN.GetPersona().ValidaUsuario(txtNumero.Text) == "")
                        {
                            objUsuarioE.Usuario = txtUsuario.Text;
                            objUsuarioE.Pass = txtContrasenia.Text;
                            if (MediadorCN.GetUsuario().ValidarUsuario(objUsuarioE.Usuario))
                            {
                                PersonaE objPersonaEN = new PersonaE();
                                GrupxUsuEN objGrupxUsuEN = new GrupxUsuEN();
                                if (rbNatural.Checked)
                                {
                                    objPersonaEN.IDTipoPersona = 1;
                                    objPersonaEN.Nombres = txtNombres.Text.ToUpper();
                                    objPersonaEN.ApeMaterno = txtApeMaterno.Text.ToUpper();
                                    objPersonaEN.ApePaterno = txtApePaterno.Text.ToUpper();
                                    objPersonaEN.NombreCompleto = txtNombres.Text.ToUpper() + " " + txtApePaterno.Text.ToUpper() + " " + txtApeMaterno.Text.ToUpper();
                                    objPersonaEN.RazonSocial = "";
                                    objPersonaEN.FaceBook = "";
                                    objPersonaEN.Twitter = "";
                                    objPersonaEN.FechaNamiento = ddlAnio.SelectedItem.ToString() + ddlMes.SelectedValue.ToString() + ddlDia.SelectedItem.ToString();
                                    if (rbMasculino.Checked)
                                        objPersonaEN.Sexo = 'M';
                                    else if (rbFemenino.Checked)
                                        objPersonaEN.Sexo = 'F';
                                }
                                else if (rbJuridica.Checked)
                                {
                                    objPersonaEN.IDTipoPersona = 2;
                                    objPersonaEN.RazonSocial = txtRazonSocial.Text.ToUpper();
                                    objPersonaEN.Sexo = '\0';
                                    objPersonaEN.Nombres = "";
                                    objPersonaEN.ApeMaterno = "";
                                    objPersonaEN.ApePaterno = "";
                                    objPersonaEN.NombreCompleto = "";
                                    objPersonaEN.FechaNamiento = "";
                                }
                                objPersonaEN.NroDocumento = txtNumero.Text;
                                if (rbCE.Checked)
                                    objPersonaEN.IDTipoDocumento = 3;
                                else if (rbDNI.Checked)
                                    objPersonaEN.IDTipoDocumento = 1;
                                else if (rbRUC.Checked)
                                    objPersonaEN.IDTipoDocumento = 2;
                                objPersonaEN.Email = txtCorreo.Text;

                                MediadorCN.GetPersona().InsertarPersona(objPersonaEN);
                                objUsuarioE.IDPersona = objPersonaEN.IDPersona;
                                MediadorCN.GetUsuario().InsertarUsuario(objUsuarioE);
                                objGrupxUsuEN.USUGRU_P_inID = MediadorCN.GetGrupxUsu().ObtenerGrupoDefectoWeb();
                                objGrupxUsuEN.USUPAD_P_chUSU = objUsuarioE.Usuario;
                                MediadorCN.GetGrupxUsu().Insertar(objGrupxUsuEN);
                                if (objPersonaEN.IDTipoPersona == 1)
                                    wsMail.EnviaEmail(txtCorreo.Text, "MJM", "Registro de cuenta de usurio", "Estimado " + objPersonaEN.NombreCompleto + ", " + '\n' + '\n' + "Para finalizar con el proceso de registro por favor confirma tu dirección de email haciendo click aquí:" + '\n' + "http://servicios.munijesusmaria.gob.pe/appweb/wperspad/frmConfirma.aspx?ID=" + objUsuarioE.IDConfirmacion + "&User=" + objUsuarioE.UserConfirmacion + '\n' + "Una vez activada la cuenta de usuario, podrá acceder al sistema y utilizar los servicios que este ofrece" + '\n' + '\n' + "Atemante," + '\n' + "Municipalidad de Jesús María");
                                else
                                    wsMail.EnviaEmail(txtCorreo.Text, "MJM", "Registro de cuenta de usurio", "Estimado " + objPersonaEN.RazonSocial + ", " + '\n' + '\n' + "Para finalizar con el proceso de registro por favor confirma tu dirección de email haciendo click aquí:" + '\n' + "http://servicios.munijesusmaria.gob.pe/appweb/wperspad/frmConfirma.aspx?ID=" + objUsuarioE.IDConfirmacion + "&User=" + objUsuarioE.UserConfirmacion + '\n' + "Una vez activada la cuenta de usuario, podrá acceder al sistema y utilizar los servicios que este ofrece" + '\n' + '\n' + "Atemante," + '\n' + "Municipalidad de Jesús María");
                                Response.Redirect("Registrado.aspx");
                            }
                            else
                                lblErrorRegistro.Text = "El usuario ingresado ya existe.";
                        }
                        else
                            lblErrorRegistro.Text = "Usted ya está registrado en el sistema.";
                    }
                    else
                        lblErrorRegistro.Text = "Contraseña de confirmación incorrecta.";
                }
                else
                    lblErrorRegistro.Text = "Seleccione el mes de nacimiento.";
            }
            else
                lblErrorRegistro.Text = "Seleccione el año de nacimiento.";
        }

        protected void rbRUC_CheckedChanged(object sender, EventArgs e)
        {
            txtNumero.Text = "";
            txtNumero.MaxLength = 11;
        }

        protected void rbDNI_CheckedChanged(object sender, EventArgs e)
        {
            txtNumero.Text = "";
            txtNumero.MaxLength = 8;
        }

        protected void rbCE_CheckedChanged(object sender, EventArgs e)
        {
            txtNumero.Text = "";
            txtNumero.MaxLength = 8;
        }
        
    }
}
